<?php 

$idClient = (isset($_GET['id_client'])) ? $_GET['id_client'] : false;

$action = (!empty($_GET['action'])) ? $_GET['action'] : false;// m-> modif, a-> ajout, s-> suppr
$etatAction = (!empty($_GET['etatAction'])) ? $_GET['etatAction'] : false;

$sousAction = (!empty($_GET['sousAction'])) ? $_GET['sousAction'] : false; 

$formulaireNouveauClientRempli = (!empty($_POST['formulaireNouveauClientRempli'])) ? $_POST['formulaireNouveauClientRempli'] : false;
$formulaireModifClientRempli = (!empty($_POST['formulaireModifClientRempli'])) ? $_POST['formulaireModifClientRempli'] : false;
$formulaireSupprClientRempli = (!empty($_POST['formulaireSupprClientRempli'])) ? $_POST['formulaireSupprClientRempli'] : false;

// Champs communs à la page, définition de tous les champs à vide dans le cas où nous arrivons pour la première fois sur la page 
$raisonSociale = (isset($_POST['raisonSociale'])) ? remplacer_cote(trim($_POST['raisonSociale'])) : "";
$nom = (isset($_POST['nom'])) ? remplacer_cote(trim($_POST['nom'])) : "";
$prenom = (isset($_POST['prenom'])) ? remplacer_cote(trim($_POST['prenom'])) : "";
$commune = (isset($_POST['commune'])) ? trim($_POST['commune']) : "";
$adresse = (isset($_POST['adresse'])) ? remplacer_cote(trim($_POST['adresse'])) : "";
$adresse2 = (isset($_POST['adresse2'])) ? remplacer_cote(trim($_POST['adresse2'])) : "";
$tel = (isset($_POST['tel'])) ? trim($_POST['tel']) : "";
$tel2 = (isset($_POST['tel2'])) ? trim($_POST['tel2']) : "";
$email = (isset($_POST['email'])) ? trim($_POST['email']) : "";
$fax = (isset($_POST['fax'])) ? trim($_POST['fax']) : "";
$commentaire = (isset($_POST['commentaire'])) ? remplacer_cote(trim($_POST['commentaire'])) : "";


// Récup des valeurs des listes déroulantes
$numDepartement = (!empty($_POST['numDepartement'])) ? $_POST['numDepartement'] : false;
$premLettreDepartement = (!empty($_POST['premLettreDepartement'])) ? $_POST['premLettreDepartement'] : false;


// Formulaire nouveau client
if ($action == 'a') {

	$bouton_haut = array(true,false,true);
	include_once 'structure/vue_menu_superieur.php';
	
	// Département choisi ou un choix de lettre
	if($sousAction){
	
		if ($sousAction == 'choixDepartement'){
	
			$lettres = Clients::afficherCommunes($numDepartement);
			$listeVilles = Clients::afficherCommunesParLettre($numDepartement, "A");
		}
	
		// Première lettre choisie
		else {
				
			$lettres = Clients::afficherCommunes($numDepartement);
			$listeVilles = Clients::afficherCommunesParLettre($numDepartement, $premLettreDepartement);
		}
	}

	// Pas de sous action
	else {
		
		$numDepartement = 64; // Définition par défaut du département du 64
		$lettres = Clients::afficherCommunes(64); // Toutes les 1ères lettres des communes du 64
		$listeVilles = Clients::afficherCommunesParLettre(64, "P");
	}
			
	include_once 'module_clients/vues/vue_form_ajout.php';

	$bouton_bas = array(false,false,false,"clients");
	include_once 'structure/vue_menu_inferieur.php';
}

// Traitement ajout d'un nouveau client
else if ($formulaireNouveauClientRempli) {
	
	// Création du client par le clic du bouton
	if(!$sousAction){ 
		
		if( $raisonSociale == "")
			$raisonSociale = "Particulier";
		
		else
			$raisonSociale = strtoupper($raisonSociale);
		
		$etatAction = Clients::ajoutClient( $raisonSociale, strtoupper($nom), ucwords($prenom), $adresse, $adresse2, strtolower($email), $tel, $tel2, $fax, $commentaire, $commune);
		header("Location:index.php?page=accueil&action=ajoutClient&etatAction=".$etatAction);
	
	}
	else 
		header("location:index.php?page=clients&action=a&sousAction=$sousAction");
}

// Formulaire modification client
else if ($idClient && $action == "m") {
	
	$bouton_haut = array(true,true,true, $idClient);
	include_once 'structure/vue_menu_superieur.php'; // HAUT
	
	// Entête client
	$clientEntete = Clients::afficher_nom_prenom_raison_sociale($idClient);
	include_once 'module_clients/vues/sous_vue_entete_client.php';
	
	// Récup de la bdd des informations assimilées au client
	$resultats = Clients::afficher_infos_clients($idClient);
	
	
	// Récup du num de département du client
	$numDepartement = substr($resultats->cpCommune,0,2);

	// Récup des noms des communes 
	$lettres = Clients::afficherCommunes($numDepartement);
	
	// Récup du nom des communes par lettres
	$listeVilles = Clients::afficherCommunesParLettre($numDepartement, substr($resultats->nomCommune,0,1));
	
	include_once 'module_clients/vues/vue_form_modif.php';
	
	$bouton_bas = array(true,false,false,"clients&id_client=".$idClient);
	include_once 'structure/vue_menu_inferieur.php'; // BAS
}

// Traitement modification client
// Ce cas contient le même qu'au dessus
else if ($formulaireModifClientRempli) {
	
	$bouton_haut = array(true,true,true,$idClient );
	include_once 'structure/vue_menu_superieur.php'; // HAUT
	
	// Entête client
	$clientEntete = Clients::afficher_nom_prenom_raison_sociale($idClient);
	include_once 'module_clients/vues/sous_vue_entete_client.php';
	
	if(!$sousAction)
		Clients::modifierClient($idClient, $raisonSociale, strtoupper($nom), ucwords($prenom), $adresse, $adresse2,  strtolower($email), $tel, $tel2, $fax, $commentaire, $commune);
	
	// Récup de la bdd des informations assimilées au client
	$resultats = Clients::afficher_infos_clients($idClient);
	
	// Département choisi ou un choix de lettre
	if($sousAction){
	
		if ($sousAction == 'choixDepartement'){

			$lettres = Clients::afficherCommunes($numDepartement);
			$listeVilles = Clients::afficherCommunesParLettre($numDepartement, "A");
		}
		
		// Première lettre choisie
		else if($sousAction == 'choixLettre'){
			
			$lettres = Clients::afficherCommunes($numDepartement);
			$listeVilles = Clients::afficherCommunesParLettre($numDepartement, $premLettreDepartement);
		}
	
		// Département choisi
		else {
			
			$lettres = Clients::afficherCommunes($numDepartement);
			$listeVilles = Clients::afficherCommunesParLettre($numDepartement, substr($resultats->nomCommune, 0, 1));
		}
	}
	
	// Pas de département choisi
	else {
		// Récup du num de département du client
		$numDepartement = substr($resultats->cpCommune,0,2);
	
		// Récup des noms des communes 
		$lettres = Clients::afficherCommunes($numDepartement);
		
		// Récup du nom des communes par lettres
		$listeVilles = Clients::afficherCommunesParLettre($numDepartement, substr($resultats->nomCommune,0,1));
	}
	
	include_once 'module_clients/vues/vue_form_modif.php';
	
	$bouton_bas = array(true,false,false,"clients&id_client=".$idClient);
	include_once 'structure/vue_menu_inferieur.php'; // BAS
	
}

// Traitement suppression client
else if ($action == 's') {

	$etatAction = Clients::supprimerClient($idClient);
	
	header("location:index.php?page=accueil&action=supprClient&etatAction=".$etatAction);
	
}

else if ($idClient != false && $action == "menu"){

	// Mise à jour des consultations
	Clients::consultationClient($idClient);
	
	$bouton_haut = array(true,false,true);
	include_once 'structure/vue_menu_superieur.php';
	
	$clientEntete = Clients::afficher_nom_prenom_raison_sociale($idClient);
	
	if($action == "ajoutClientEmail")
		include_once 'module_clients/vues/vue_ajout_client_email_valide.php';
		
	include_once 'module_clients/vues/vue_menu.php';
	
	$bouton_bas = array(false,false,false,"menu");	
	include_once 'structure/vue_menu_inferieur.php';
}

// Fiche client
else if ($idClient && $action == "ficheClient"){
	
	// Mise en forme des menus
	$bouton_haut = array(true,true,true, $idClient);	
	include_once 'structure/vue_menu_superieur.php'; // HAUT
	
	$resultats = Clients::afficher_infos_clients($idClient);
	include 'module_clients/vues/vue_fiche_client.php';
	
	$bouton_bas = array(true,true,false,"clients&id_client=".$idClient);
	include_once 'structure/vue_menu_inferieur.php'; // BAS
}

// Formulaire d'ajout client par email
else if($action == "formCreationClientParEmail"){
	
	// Mise en forme des menus
	$bouton_haut = array(true,false,true);
	include_once 'structure/vue_menu_superieur.php';

	include_once 'module_clients/vues/vue_form_ajout_client_email.php';
	
	$bouton_bas = array(false,false,false,"clients&id_client=".$idClient);
	include_once 'structure/vue_menu_inferieur.php'; // BAS
}

// Traitement de l'ajout de client par Email
else if ($action =="generationMail"){
	
	$requeteReussie = Clients::ajoutClient($raisonSociale, $nom, $prenom, $adresse, $adresse2, $email, $tel, $tel2, $fax, $commentaire, '26044');
	
	if($requeteReussie){
		
		if( $raisonSociale == ""){
			$idClient = Clients::clientExistant('Particulier', $nom, $prenom);
						
		}
		else {
			$idClient = Clients::clientExistant($raisonSociale, $nom, $prenom);
			
		}
		
		$idKeyGen =  keygen();
		
		$sql = "UPDATE clients
						SET cleModifClient =  '". $idKeyGen."'
						WHERE idClient = ".$idClient;
		
		$requetePreparee = Pdo2::getPdo()->prepare($sql);
		$requeteReussie2 = $requetePreparee->execute();

		$sujet = "[SteveInformaTIC] Sollication d'ajout de vos informations client"; 

		$contenu = "Bonjour, ceci est un courriel automatique envoyé par la société SteveInformaTIC dans le but de collecter ";
		$contenu .= "des informations indispensables pour la facturation et une qualité d'intervention optimale. <br> \n ";
		$contenu .= "Pour ce faire, veuillez remplir ces informations et/ou les modifier s'il s'avère qu'elles sont inexactes. \n";  
		$contenu .= "<html><a href=\"http://localhost/workspace/site_steve/controleur_principal.php?idClient=$idClient&idGene='$idKeyGen'\">Cliquez ici </a></html>";
		
		$entete = 'Mime-Version: 1.0 \n';
		$entete .= 'Content-type: text/html; charset=utf-8 \n';
		$entete .= 'From: "Steve InformaTIC" contact@steveinformatic.com \n';
		$entete .= 'Priority: normal \n';
				
		mail( $email, $sujet, $contenu, $entete);		
		
		// Client existant et bien créé
		if($idClient != false){
			
			echo "<script>alert('je suis dans le cas où la requete à réussie')</script>";
			header("Location:index.php?page=clients&idClient=$idClient&action=menu&sousAction=envoiEmail");
		}
		else {
			
			echo "<script>alert('je suis dans le cas où la requete à raté')</script>";
			header("Location:index.php?page=accueil&action=ajoutClientEmail");
		} 
	}

	header("Location:index.php?page=accueil&action=ajoutClientEmail");
}

else {
	
	// Aucune option ci-dessus
	
}
